프로세스 & 바이너리
코드 이미지 또는 바이너리: 실행파일(저장매체)
실행중인 프로그램: 프로세스(메모리)-폰 노이만 구조
가상 메모리 및 물리 메모리 정보
시스템 리소드 관련 정보
스케쥴링 단위
등 바이너리보다 추가적인 정보를 가지고 있음(PCB)
리눅스의 다양한 프로세스 실행 환경리눅스는 기본적으로 다양한 프로세스가 실행된다.
유닉스 철학: 여러 프로그램이 서로 유기적으로 각자의 일을 수행하면서, 전체 시스템이 동작하도록 하는 모델
foreground process & background processforeground process: 쉘(shell)에서 해당 프로세스 실행을 명령한 후, 해당 프로세스 수행 종료까지 사용자가
다른 입력을 하지 못하는 프로세스(fg)
background process: 사용자 입력과 상관없이 실행되는 프로세스(bg)
쉘(shell)에서 해당 프로세스 실행시, 맨뒤에 &를 붙여준다.
ex) $find / —name ‘*.py’ >list.txt &
[1] 57
: [1]은 작업 번호(job number), 57은 pid(process ID)를 나타낸다.
foreground process default로 실행됨을 테스트 해보기 위해서 무한루프 코드 작성
$sudo apt-get install gcc
#include <stdio.h>
int main(void){
int i=1;
while(i==1){}
return 0
}
$gcc loop.c -o loop
$./loop
loop를 시행하는 동안 어떤 명령도 수행할 수 없다.
$./loop &
[1] 5679
loop를 실행하는 동안 명령을 수행가능(backgroud)에서 멀티 태스킹 수행
$kill 5679